/* @(#)FmsActivityHelper.java
** 
** Copyright (C) 2012 by Steven D. Stamps
**
**             Trademarks & Copyrights
** Flywheel Management Science(TM), Flywheel Management Model(TM),
** Flywheel Story Editor(TM) and FlywheelMS(TM) are exclusive trademarks
** of Steven D. Stamps and may only be used freely for the purpose of
** identifying the unforked version of this software.  Subsequent forks
** may not use these trademarks.  All other rights are reserved.
**
** DecKanGL (Decorated Kanban Glyph Language) and TribKn (Tribal Knowledge)
** are also exclusive trademarks of Steven D. Stamps.  These may be used
** freely within the unforked FlywheelMS application and documentation.
** All other rights are reserved.
**
** gConGUI (game Controller Graphical User Interface) is an exclusive
** trademark of Steven D. Stamps.  This trademark may be used freely
** within the unforked FlywheelMS application and documentation.
** All other rights are reserved.
**
** Trademark information is available at
** <http://www.flywheelms.com/trademarks>
**
** Flywheel Management Science(TM) is a copyrighted body of management
** metaphors, governance processes, and leadership techniques that is
** owned by Steven D. Stamps.  These copyrighted materials may be freely
** used, without alteration, by the community (users and developers)
** surrounding this GPL3-licensed software.  Additional copyright
** information is available at <http://www.flywheelms.org/copyrights>
**
**              GPL3 Software License
** This program is free software: you can use it, redistribute it and/or
** modify it under the terms of the GNU General Public License, version 3,
** as published by the Free Software Foundation. This program is distributed
** in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
** even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
** PURPOSE.  See the GNU General Public License for more details. You should
** have received a copy of the GNU General Public License, in a file named
** COPYING, along with this program.  If you cannot find your copy, see
** <http://www.gnu.org/licenses/gpl-3.0.html>.
*/

package com.flywheelms.library.fms.helper;

import java.util.ArrayList;

import com.flywheelms.library.fmm.node.impl.enumerator.FmmNodeDictionary;
import com.flywheelms.library.fms.miscellaneous.FmsContext;
import com.flywheelms.library.gcg.helper.GcgHelper;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;

public class FmsActivityHelper {
	
	public static final String bundle_key__NODE_CLASS_NAME = "NodeClassName";
	public static final String bundle_key__INITIAL_NODE_TO_DISPLAY = "InitialNodeToDisplay";
	public static final String bundle_key__NAVIGATION_NODE_ID_LIST = "NavigationNodeIdList";
	public static final String bundle_key__NAVIGATION_PARENT_NODE_ID = "NavigationParentNodeId";
	public static final String bundle_key__NAVIGATION_PARENT_CLASS_NAME = "NavigationParentClassName";
	public static final String bundle_key__FMS_CONTEXT = "FmsContext";
	
	public static void startDecKanGlDictionaryActivity(Context aContext) {
		Intent theIntent =
				new Intent(aContext, com.flywheelms.library.fms.activity.DecKanGlDictionaryActivity.class);
  	  aContext.startActivity(theIntent);
	}
	
	public static void startFiscalYearActivity(
			Context aContext,
			FmsContext anFmsContext,
			String aNodeClassName,
			ArrayList<String> aNodeIdList,
			String anInitialNodeIdToDisplay,
			String aNodeListParentNodeId,
			String aNodeListParentNodeClassName ) {
		Intent theIntent = new Intent(aContext, com.flywheelms.library.fms.activity.FmsFiscalYearActivity.class);
		Bundle theBundle = new Bundle();
		theBundle.putString(bundle_key__NODE_CLASS_NAME, aNodeClassName);
		theBundle.putStringArrayList(bundle_key__NAVIGATION_NODE_ID_LIST, aNodeIdList);
		theBundle.putString(bundle_key__INITIAL_NODE_TO_DISPLAY, anInitialNodeIdToDisplay);
		theBundle.putString(bundle_key__NAVIGATION_PARENT_NODE_ID, aNodeListParentNodeId);
		theBundle.putString(bundle_key__NAVIGATION_PARENT_CLASS_NAME, aNodeListParentNodeClassName);
		theBundle.putString(bundle_key__FMS_CONTEXT, anFmsContext.getSerialized());
		theIntent.putExtras(theBundle);
		aContext.startActivity(theIntent);
	}
	
	public static void startFmmNodeActivity(
			Context aContext,
			FmsContext anFmsContext,
			String aNodeClassName,
			ArrayList<String> aNodeIdList,
			String anInitialNodeIdToDisplay,
			String aNodeListParentNodeId,
			String aNodeListParentNodeClassName ) {
		FmmNodeDictionary theDictionaryEntry = FmmNodeDictionary.getEntryForNodeClassName(aNodeClassName);
		if(theDictionaryEntry == null) {
			GcgHelper.makeToast("ERROR - Unknown FMM Node = " + aNodeClassName);
			return;
		}
		switch(theDictionaryEntry) {
		case FISCAL_YEAR:
			startFiscalYearActivity(aContext, anFmsContext, aNodeClassName, aNodeIdList, anInitialNodeIdToDisplay, aNodeListParentNodeId, aNodeListParentNodeClassName);
//			GcgHelper.makeToast("Launch FiscalYear activity: " + anInitialNodeToDisplay);
			break;
		case STRATEGIC_MILESTONE:
			GcgHelper.makeToast("Launch StrategicMilestone activity...");
			break;
		case PROJECT_ASSET:
			GcgHelper.makeToast("Launch ProjectAsset activity...");
			break;
			default:
				GcgHelper.makeToast("ERROR - No activity implemented for FMM Node = " + aNodeClassName);
		}
	}

}
